/**
 * nmat_ec.h
 * 	\file
 * \author Marco Luisi
 * \brief Header file con macro per la gestione degli errori.
 *
 *
 */

//da fare, include e GESTIONE LOG!!!

#ifndef NMAT_EC_H_
#define NMAT_EC_H_

/**  Se s è NULL, restituisce -1*/
#define EC_NULL_M1(s) if((s) == NULL) {return -1;}
/** Se s è NULL, stampa un messaggio d'errore e restituisce -1. */
#define EC_NULL_P(s,m) if ((s) == NULL) {perror(m); return -1;}
/** Se s è NULL, esegue f e poi restituisce -1 */
#define EC_NULL_F(s,f) if ((s) == NULL) {f; return -1;}
/** Se s è NULL, stampa messaggio d'errore ed esce. */
#define EC_NULL_E(s,m) if ((s) == NULL) {perror(m); exit(EXIT_FAILURE);}//forse non serve

/** Se s è -1, restituisce -1. */
#define EC_M1(s) if ((s) == -1) {return -1;} //utile?
/** Se s è -1, stampa messaggio d'errore e restituisce -1. */
#define EC_M1_P(s,m) if ((s) == -1) {perror(m); return -1;}
/** Se s è -1, esegue f e restituisce -1. */
#define EC_M1_F(s,f) if ((s) == -1) {f; return -1;}
/** Se s è -1, stampa messaggio d'errore ed esce. */
#define EC_M1_E(s,m) if((s) == -1) {perror(m); exit(EXIT_FAILURE);}





#endif /* NMAT_EC_H_ */
